// 知识点1：委托构造函数：一个委托构造函数使用它所属类的其他构造函数执行它自己的初始化过程。
#include <iostream>
#include <string>
using namespace std;
class OH {
  //三参数构造函数的参数列表和函数体首先被执行
  OH(string s, int a, int b) : book(s), price(a), sale(b) {}
  OH() : OH("", 0, 0){}; //默认构造函数又委托给了三参数构造函数
  // OH (istream& is)是一个委托构造函数，它委托给了默认构造函数OH()
  OH(istream &is) : OH() {}

  string book;
  int price;
  int sale;
};